链表删除结点

链表删除结点

删除结点有几种情况:

# 单链表的实现
class SingleLinkList(object):
    ......
    # 删除结点
    # remove(item)
    def remove(self, item):
        # 游标
        cur = self.head
        # 辅助游标
        pre = None

        while cur is not None:
            # 找到了要删除的元素
            if cur.item == item:
                # 要删除的元素在头部
                if cur == self.head:
                    self.head = cur.next
                else:
                    pre.next = cur.next
            # 没有找到要删除的元素
            else:
                pre = cur
                cur = cur.next

            cur = cur.next
# 单链表的实现
class SingleLinkList(object):
    ......

    # 查找结点是否存在
    # search(item)
    def search(self, item):
        # 游标
        cur = self.head

        while cur is not None:
            # 找到了指定的结点
            if cur.item == item:
                return True
            cur = cur.next

        return False